Don't place html in alt/title attributes, especially with thumbnails
[lhc/web/wiklou.git] / includes / SpecialUndelete.php
index 36a047a..b38206d 100644 (file)
@@ -155,7 +155,7 @@ class PageArchive {
         * @return bool
         */
        function undelete( $timestamps ) {
-               global $wgDeferredUpdateList, $wgParser, $wgDBtype;
+               global $wgParser, $wgDBtype;
 
                $fname = "doUndeleteArticle";
                $restoreAll = empty( $timestamps );
@@ -181,13 +181,11 @@ class PageArchive {
                        $newid             = 0;
                        $pageId            = $page->page_id;
                        $previousRevId     = $page->page_latest;
-                       $previousTimestamp = $page->rev_timestamp;
                } else {
                        # Have to create a new article...
                        $newid  = $article->insertOn( $dbw );
                        $pageId = $newid;
                        $previousRevId = 0;
-                       $previousTimestamp = 0;
                }
 
                if( $restoreAll ) {
@@ -313,9 +311,12 @@ class UndeleteForm {
                $this->mAction = $request->getText( 'action' );
                $this->mTarget = $request->getText( 'target' );
                $this->mTimestamp = $request->getText( 'timestamp' );
-               $this->mRestore = $request->getCheck( 'restore' ) &&
-                       $request->wasPosted() &&
+               
+               $posted = $request->wasPosted() &&
                        $wgUser->matchEditToken( $request->getVal( 'wpEditToken' ) );
+               $this->mRestore = $request->getCheck( 'restore' ) && $posted;
+               $this->mPreview = $request->getCheck( 'preview' ) && $posted;
+               
                if( $par != "" ) {
                        $this->mTarget = $par;
                }
@@ -401,7 +402,46 @@ class UndeleteForm {
 
                $wgOut->setPagetitle( wfMsg( "undeletepage" ) );
                $wgOut->addWikiText( "(" . wfMsg( "undeleterevision",
-                       $wgLang->date( $timestamp ) ) . ")\n<hr />\n" . $text );
+                       $wgLang->date( $timestamp ) ) . ")\n" );
+               
+               if( $this->mPreview ) {
+                       $wgOut->addHtml( "<hr />\n" );
+                       $wgOut->addWikiText( $text );
+               }
+               
+               $self = Title::makeTitle( NS_SPECIAL, "Undelete" );
+               
+               $wgOut->addHtml(
+                       wfElement( 'textarea', array(
+                                       'readonly' => true,
+                                       'cols' => intval( $wgUser->getOption( 'cols' ) ),
+                                       'rows' => intval( $wgUser->getOption( 'rows' ) ) ),
+                               $text . "\n" ) .
+                       wfOpenElement( 'div' ) .
+                       wfOpenElement( 'form', array(
+                               'method' => 'post',
+                               'action' => $self->getLocalURL( "action=submit" ) ) ) .
+                       wfElement( 'input', array(
+                               'type' => 'hidden',
+                               'name' => 'target',
+                               'value' => $this->mTargetObj->getPrefixedDbKey() ) ) .
+                       wfElement( 'input', array(
+                               'type' => 'hidden',
+                               'name' => 'timestamp',
+                               'value' => $timestamp ) ) .
+                       wfElement( 'input', array(
+                               'type' => 'hidden',
+                               'name' => 'wpEditToken',
+                               'value' => $wgUser->editToken() ) ) .
+                       wfElement( 'input', array(
+                               'type' => 'hidden',
+                               'name' => 'preview',
+                               'value' => '1' ) ) .
+                       wfElement( 'input', array(
+                               'type' => 'submit',
+                               'value' => wfMsg( 'showpreview' ) ) ) .
+                       wfCloseElement( 'form' ) .
+                       wfCloseElement( 'div' ) );
        }
 
        /* private */ function showHistory() {
@@ -421,7 +461,7 @@ class UndeleteForm {
                        return;
                }
                if ( $this->mAllowed ) {
-                       $wgOut->addWikiText( wfMsg( "undeletehistory" ) . "\n----\n" . $text );
+                       $wgOut->addWikiText( wfMsg( "undeletehistory" ) );
                } else {
                        $wgOut->addWikiText( wfMsg( "undeletehistorynoadmin" ) );
                }